﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MergulhoGrafo
{
    public class Nodo
    {
        #region Atributos
        private int NumeroRef = 0;
        private Nodo _Link;
        private Nodo _Curto;
        private Nodo _Longo;
        private bool _NaoTemLink = true;
        public Retangulo Pai;

        #endregion

        #region Propriedades

        public Nodo Link 
        {
            get
            {
                return _Link;
            }
            set
            {
                this._Link = value;
                this._NaoTemLink = false;

                value._Link = this;
                value._NaoTemLink = false;
                
            }
        }

        public Nodo Curto
        {
            get
            {
                return this._Curto;
            }
            set
            {
                this._Curto = value;
                value._Curto = this;
            }
        }

        public Nodo Longo
        {
            get
            {
                return this._Longo;
            }
            set
            {
                this._Longo = value;
                value._Longo = this;
            }
        }

        public bool NaoTemLink
        {
            get
            {
                return _NaoTemLink;
            }
        }
        #endregion

        #region Construtor
        public Nodo(int numeroRef, Retangulo pai)
        {
            this.NumeroRef = numeroRef;
            this.Pai = pai;
        }
        #endregion

        #region Métodos
        public int GetNumeroRef()
        {
            return NumeroRef;
        }
        #endregion
    }
}
